Обновить

Anonymous file sharing. BitTorrent over I2P

Время на прочтение 13 min
Количество просмотров 33K

In a trivial file sharing scheme, there are users and a server that accepts a file from one user and allows others to download it. There are two weak points in this scenario: the network bandwidth of the distribution server and the centralization factor. The server’s network channel can provide good download speeds to several users, for example, a hundred, but if you imagine that thousands of users are downloading from the server at the same time, alas, the download speed for everyone will become depressing. You can also mention the speed of the server’s hard drives, which in some cases contributes to a drop in download speed no worse than a weak network channel. All this is the consequence of a centralized architecture, the main danger of which lies in the fact that a server leaving the network is tantamount to a complete loss of the ability to download the file it stores..

BitTorrent is the most common protocol for exchanging files peer-to-peer, that is, directly between users without dependence on the central server.

BitTorrent

BitTorrent supports several operating modes, which in most cases are combined together: work via tracker, PEX (Peer EXchange) and DHT (Distributed Hash Table). First things first.

First, you need to clarify the basic terminology related to torrent distribution participants:

  • Peer – a general designation for a participant in the process;

  • Seed, seed - a peer that has the entire file. The user who creates the distribution is clearly called a seeder, since at the initial stage only he has the entire file. This is why there is usually only one seeder in a new distribution. If you downloaded the entire file and did not leave the distribution, then you also become a seeder;

  • Leecher - a peer that downloads a file, but has not yet downloaded it completely. He can also distribute fragments that he has already downloaded to other peers;

  • SuperSeed is a seed in a special distribution mode, when it gives each downloader only unique fragments of files, thereby forcing other participants to be more active (exchange missing parts among themselves).

Tracker is a server that distribution participants access to publish information about themselves and receive information about other exchange participants. A user who has not yet downloaded the file, after receiving a list of peers, knocks on their door with a request to give out part of the file. To implement the possibility of fragmented file downloading (rather than sequential from the first to the last byte in a row), the torrent distribution contains hashes of fragments of the final file. This allows you to download a file in separate parts from different users and check their integrity. The mission of the tracker is to accumulate information about the distribution participants and provide this information to the participants themselves. The torrent tracker does not in any way touch the final file, the exchange of which it provides; it only brings together the distributors and downloaders.

To minimize the consequences of a torrent tracker failure, you can specify several trackers when creating a distribution. In addition, anyone can display the distribution on the new tracker. Thus, interruptions with one of the servers do not deprive the ability to download and distribute.

PEX (Peer EXchange) — extension of the BitTorrent protocol for exchanging lists of participants. The implementation is simple: in addition to file fragments, users exchange additional messages that contain lists of participants who have connected and disconnected from the distribution. This helps new users quickly integrate into the process of downloading a file, since they do not need to wait for the distribution node to contact the tracker, where it will receive a list of newcomers. Also, for the downloading participant, a new source of peers appears in addition to the torrent tracker.

Although simple in design, some BitTorrent clients have their own implementation of PEX that is not compatible with others. In addition, PEX is not a panacea, since it can only help those users who are already connected to the distribution (because PEX messages go through the usual BitTorrent protocol in the form of additional packets).

DHT (Distributed Hash Table) — a protocol that allows BitTorrent clients to find each other without using a tracker. DHT is fundamentally similar to PEX with the main difference being that it operates separately from the main BitTorrent protocol.

Each connected BitTorrent client is a separate node in the DHT network. It has its own unique ID, randomly selected from the same 160-bit space as torrent infohashes. Each node maintains a routing table containing contact information for many nodes "closer" to it, and for several more distant ones. The "closeness" of two nodes is calculated from the "similarity" of their IDs, and has nothing to do with their geographic proximity.

When a node wants to find peers for a particular distribution, it compares the infohash of that distribution with the IDs of the nodes it knows, and then sends a request to the node whose ID is most similar to this infohash. The next node, in turn, returns the address of the node whose ID is even closer to the torrent's infohash. Thus, requests from clients participating in the distribution of a torrent with a certain infohash gradually flow to the nodes whose IDs are most similar to the infohash of the distribution. These nodes remember previous requests from participants for a specific torrent and all subsequent nodes that request will return the addresses of previous peers from the same distribution.

The DHT database is stored by the torrent client regardless of active distributions and is maintained until shutdown or restart, regularly accepting requests from other participants and checking nodes from its list for activity. The DHT database is replenished at any opportunity: when receiving a list of participants from torrent trackers, or from other peers via PEX or DHT.

DHT provides an alternative way to publish a torrent without specifying a tracker. As a rule, such distributions are distributed as a text link instead of a torrent file. The line is called a magnet link and necessarily contains the infohash of the distribution, which allows you to find participants in the distribution via DHT. However, the magnet link may contain the address of the torrent tracker, which in most cases speeds up the search for peers. It should be noted that a magnet link and a torrent file without specifying a tracker are useless if the end user does not have active DHT connections through which he can find a peer participating in the distribution with the desired infohash.

A lot of explanatory material has been created about the basic principles of BitTorrent, so, having understood the essence, let’s move on to the main topic of the article.

BitTorrent to I2P

The idea of ​​file sharing through hidden networks like I2P is not new. For the average user, I2P torrent is notable for the practical impossibility of blocking distributions and trackers on the part of providers, since I2P is a hidden network where the goal of everything is anonymity and the inability to track the source of traffic. The general paradigm of BitTorrent, like any peer-to-peer exchange, implies a direct connection between users. It is this feature that makes conventional torrents unsuitable for distributing files, the distributors of which Big Brother wants to catch and punish. For example, in some European countries much attention is paid to the fight against domestic piracy: games, films, TV series. Law enforcement officers, having connected to the distribution, track by IP address who is participating in the distribution of the cracked game, and then the user receives either a chain letter or a police squad, depending on the level of copying hysteria in the region.

It is considered unethical to publicly discuss the topic of anonymous file sharing, since our average person knows a circle of people who dream of anonymity: pedophiles, drug addicts, extremists, sectarians, sectarian drug addicts, and so on; watch the latest list on federal television channels. However, to a free-thinking and healthy person, the scope of application of anonymous torrents is easy and without remorse. Remember WikiLeaks and other revelations of inhumanity, which for a healthy person are a crime, but according to sometimes absurd laws, the dissemination of information about such crimes is already a crime like disclosing state secrets. The possibility of secretly transferring files in such cases is equal to preserving one’s own life, health and freedom. The need for anonymity is a broad topic, in which there is a place for a corrupt official, a mediocre anime fan, whistleblowers of lawlessness, and - they tell the truth on TV! - criminals. As for criminals: they do not need this article; they have already been successfully using technologies for a long time, which, in principle, cannot be effectively blocked, and therefore prohibited. This material is addressed to a wide audience and is educational in nature, so that free technologies belong to the people, and not to a narrow group of people.

Resistance to censorship on the side of Internet providers and anonymity to distribution participants is entirely ensured by I2P technology. When observing from the outside, it is almost impossible to track the movement of I2P traffic and, therefore, its source. All users and servers have cryptographic IDs instead of IP addresses. Identifiers have nothing to do with the actual location of a network participant, but allow you to contact him. Read more about I2P in separate article, which answers most questions (and also look at other articles on the topic in my profile).

There are several BitTorrent clients that can work via I2P. New solutions appear periodically or old ones are no longer supported by developers. Be that as it may, all applications in this category are divided into two types: those that can work both via the regular Internet and via I2P, and those that are created exclusively to work via a hidden network.

Using a multi-network torrent client can be dangerous if used improperly, as the IP address can be leaked. For example, a user started downloading something via I2P, but he has active DHT connections from the regular Internet, and his client periodically accesses torrent trackers located outside hidden networks. If a request comes from a non-anonymous network that contains the infohash of a dubious I2P seed, the torrent application will respond positively and begin relaying the seed from the darknet somewhere out there, perhaps to Big Brother. The ensuing consequences of leaking an IP address in a dubious distribution are difficult to predict, but nothing pleasant will probably come of it.

On the other hand, multi-network torrent clients can be very useful for deliberate cross-network torrenting. For example, having downloaded a movie from a clearnet tracker (from a torrent tracker from the regular Internet), it can be distributed via I2P for those who for some reason cannot or do not want to use a traditional torrent. In this case, it is important not to change the distribution so that its infohash is identical to the original one. This will provide the maximum number of peers across all possible channels for new users: for those who download only via I2P, and those who combine sources from different networks.

The average I2P network speed at the time of writing is 40Kb/sec. There are jumps over 100Kb/sec, a matter of chance, but in general, with a standard tunnel length (incoming and outgoing tunnels by default have a length of three transit nodes), the speed fluctuates in the range of 20-50Kb/sec. It turns out that the real throughput of the seed is not decisive; it delivers the file to a specific user at a speed of up to 100Kb/sec. This is the speed of a specific peer-to-peer connection, which depends on a lot of factors inherent in I2P, for example, the quality of transit nodes and their number between users. The speed will be determined by the worst member of the chain.

Leechers in an I2P torrent distribution play a significant role in accelerating the entire swarm (the totality of all participants in the distribution is called a swarm). Despite the low average speed for one connection, when downloading and distributing popular torrents in I2P, the speed reaches 2Mb/sec. This is possible thanks to the collectivity factor: participants distribute downloaded fragments to each other, forming new peer-to-peer connections among themselves. Many slow connections provide a good final speed, just as streams gather to form full-flowing rivers. In fact, the BitTorrent protocol was created specifically to distribute the load of file sharing, and its architecture fits perfectly with I2P.

Torrent client I2PSnark

A list of existing torrent clients that support work via I2P can be seen in i2pd documentation. If you think the list is incomplete, you can add. Within the framework of this material, only I2PSnark will be covered, since it has been the best solution for I2P torrents for many years. In addition to decent functionality, it is an I2P-only client, that is, it can work exclusively via the I2P network, which relieves inexperienced users from the threat of IP address leakage.

I2PSnark appeared almost simultaneously with the I2P network itself (~2003). To this day he is part Java router I2P, which includes a number of applications in addition to the main function of connecting the user to a hidden network. I2PSnark interacts with an I2P router using the I2CP protocol, which is supported in an alternative, lighter and faster router i2pd, executed in C++. To use I2PSnark separately from a Java router, you must use I2PSnark standalone. You can build the binary file yourself from the source code, or use the assembly from the project I2P+, which is a soft fork of the main I2P router with minor changes. The direct link to download the I2PSnark standalone binary is provided on the one mentioned above documentation page i2pd.

Java applications require a special execution environment on your device (Java Virtual Machine) to run. You can install Java on almost any modern operating system. Download the latest release for Linux, Mac or Windows at official page.

Before using I2PSnark standalone, you need to enable the I2CP interface, which is disabled by default in i2pd. This is done through the configuration file i2pd.conf: uncomment the line enabled = true In section [i2cp] and restart i2pd.

You can find out where to find the configuration file on your system on the main page of the i2pd web interface, which by default is available at http://127.0.0.1:7070. Look at the line Data path.

The downloaded I2PSnark standalone archive contains files launch-i2psnark And launch-i2psnark.bat. Use a bat file to run on Windows and a file without an extension in the name in any other case. When used on unix-like operating systems, do not forget to make the file executable before running (chmod +x launch-i2psnark).

You need to interact with the running I2PSnark through the web interface, available by default at http://127.0.0.1:8002. It is intuitive and easy to learn. To change the language to Russian, go to the settings (lowest button, icon with a gear), in the "User interface" section, change "Language" and click on the "Save Configuration" button below.

Pay attention to the "Tunnel Configuration" section, which is responsible for incoming and outgoing tunnels.

Hops are the length of tunnels at transit nodes. The longer the length, the more anonymous and slower the tunnels. By default, three-hop tunnels are used, but for domestic use it is quite normal to install two or even one hop.

It is possible to run multiple instances of I2PSnark on one device: short tunnels for uploading and downloading regular content, and long tunnels for working with more sensitive material. To do this, copy the entire I2PSnark folder and change the file in the copied directory jetty-i2psnark.xml: find the value "port" and change the port number on which the web interface will be available.

For example, one instance of I2PSnark could use the port 8002, and second 8003. To make it more difficult to confuse which instance you have open in your browser (with long or short tunnels), use different themes.

Note: every time I2PSnark is launched, it changes its I2P identifier, which is visible to other file sharing participants..

Uploading files and creating your own distribution

To join the distribution, open the add menu (top button with the plus icon).

In the "From URL" field you can insert a magnet link or a direct path to the file .torrent on your file system. The "Data dir" field specifies the path where the downloaded files will be saved. To start the download, click "Add torrent"".

I2PSnark also supports maggot links, a type of magnet introduced in the Robert I2P torrent client. Now Robert and his quirks are out of use. Today the term "maggot link" is found mainly as a misnomer for standard magnets..

The second and, in some cases, more elegant option allows you to add a torrent without using the web interface: add the torrent file of the desired distribution to the main I2PSnark file storage directory. By default, I2PSnark stores torrent files and downloads in a subdirectory of the same name i2psnark/i2psnark. When you add a new torrent file to this directory, the application will pick it up and begin the download process automatically within a few seconds.

To create a new torrent, you need to use the button with the magic wand icon. All that is required of us is to indicate the full path to the distributed file or folder in our file system and select trackers that will be immediately added to the distribution. If you create a distribution without using trackers, the search for peers will be exclusively based on DHT. If you are not sure what to do, check the box next to each proposed tracker and select one as the main one. As a rule, Postman is the main one, since it is the oldest classic torrent tracker with a forum (http://tracker2.postman.i2p).

After clicking the "Create torrent" button, a distribution will be created and will appear in the general list. For convenience, it is recommended to add distributed files to the default I2PSnark folder so that everything is in one place.

The finished torrent file will appear next to the other torrent files, from where you can take it for posting on the forum or directly transferring it to someone. If you click on the name of the distribution in the I2PSnark web interface, a window with information will open.

In the upper right corner you can find infohash distributions, a magnet link (icon with a magnet) and a link to download a torrent file (rightmost). When you click on the torrent file icon, you will be offered to download the file, which is located in the already designated location. To send a magnet link, right-click on the corresponding icon and copy the link to which it leads. This is a magnet link, ready for publication..

Having created a distribution that you really consider important, try to ensure the maximum seeding time so that at least the first few peers can download the entire files. After downloading someone else's distribution, do not leave immediately, sit for a while if time and disk space permit. Gentlemanship is appropriate everywhere.

Getting to know I2P torrent trackers is beyond the scope of this article and falls entirely on your shoulders. However, there is nothing complicated: design the distributions clearly, informatively and beautifully.

Seedbox

Seedbox is a device used for constant distribution of files. As a rule, it is assembled from single-board computers and external HDDs. However, any device that can simultaneously run an I2P router and a torrent client with the maximum possible uptime and disk space will do. Seedboxing includes not only the constant distribution of your files, but also support of other people’s distributions at least during the release week. This is a kind of subculture focused on the free exchange of information, imbued with altruism and price tags on hard drives.

Someday we, enthusiasts, will get to a detailed review of a successful assembly of a seedbox from sticks and electrical tape, but for now we will limit ourselves to advice:

  1. The minimum amount of device RAM to run i2pd and I2PSnark is 512MB, with a comfortable margin of 1GB.

  2. In the future, active distribution of torrents has a bad effect on the lifespan of hard drives, since torrenting involves active work with the disk with constant changes in reading locations. Especially if there is a simultaneous distribution to many participants. Because of this, multiple smaller disks should be preferred over, for example, one multi-terabyte disk. This will increase the overall system performance, and the failure of one disk will not lead to complete loss of information. Unless of course you get to use RAID — systems for mirroring drives among themselves to prevent loss of information if one of them breaks down.

  3. Due to the likelihood of disk failure, it is advisable that the operating system be on a separate physical disk than where the torrent content is stored. This is especially acute for single-board computers, where the operating system runs on an SD drive, which itself is not known for its durability..

The topic of seedboxes based on budget single-board devices is becoming especially relevant in light of the news about the release of the Linux kernel 5.15 with support for SMB and NTFS, which opens up new horizons for weak hardware, but this is a topic for another discussion...

P.S

Decentralization and the development of free technologies are impossible without the participation of ordinary people. If we do not want to depend on the policies of file hosting services and restrictions on the part of the provider, everyone needs to make a contribution within their power. At the initial stage of popularization of I2P torrents, seedboxing is a critical element that contributes to the development of the technology. Already today, torrents on hidden networks are common in countries where the situation forces it. Gradually, the practice of bans and fines is spreading to other regions. Think about it: is it possible for you to allocate several thousand rubles to buy a single-board computer and a pair of hard drives to organize your own seedbox? Even if you have not dealt with Linux and do not understand what connecting via SSH is, believe me, entering the exciting game of free technologies and openness will pay off all the hours and nerves spent on mastering these basics. In my opinion, the culture of free software and hidden networks allows each user to be an equal participant, a keeper of technology and information, which is no worse than a top online game, but with one big difference: you are not degrading, but developing.

Tags:
Hubs:
Всего голосов 62: ↑62 и ↓0 +62
Комментарии 50

Comments 50

Thank you!
Which is preferable - i2p or i2pd? What is the number of active developers in both projects? Was there an independent audit of the source codes??

For me personally, i2pd is preferable due to lower resource consumption and better speed. There are no audits as such anywhere, because it costs money that has nowhere to come from. However, all the source code is open and any more or less programmer can take a look for their own peace of mind when using the application in the future.

Both developer communities are moderately active, you can read the chat logs here. Sometimes both groups of developers communicate in the same chat, agreeing on bugfixes and innovations in the protocol.

So, for any rare distribution (not some, say, another Spiderman) the speed will be the same 20-50Kb/sec? Not impressive...

just for any single rare distribution, a seed with any speed is much better than none

A lot of distributions related to, generally speaking, art, have literally a couple of distributions, regardless of the age of the distribution (this is easy to see, for example, on rutracker.org in some section like academic music in lossless). At the same time, copywriters do not get tired of monitoring even such distributions (even if they themselves do not want to legally sell the same thing!), especially in Europe, where they have established legal semi-automatic tracking and complaint mechanisms.

Well, in general, if the described technology works fine only for new torrents, and, moreover, “quite popular on the darknet, but not popular enough on regular trackers,” then the scope of application is narrowed very much...

Understand. Based on this judgment, the topic of seedboxing is included in the article. Seedboxers (and just torrent freaks) are able to support any distribution, boosting it from 50Kb/sec to more significant levels. However, if we are talking about an old and little-demanded distribution, to increase the speed, all you have to do is minimize the length of your tunnels and be patient.

The I2P high-speed mode teaches patience and slowness. If you wish, you can find philosophical implications in this: relax, take your time, surf slowly and enjoy every open page.

Great article, thanks!

How transmission lacks the ability to work simultaneously over a white network and i2p. transfer all your 100500 distributions to the second torrent client of your desire exactly 0

By the way, the torrents v2 protocol is of course not yet supported?

Not in I2PSnark yet. I think it's a matter of time.

Checksums contain a larger number of bytes and are calculated by a slightly more reliable hash function.

In order to maintain backward compatibility, they even came up with hybrid magnet links with two checksums.

In addition, it seems that the ability to either distribute or download (one of these for now) the same files from different distributions has been added.

And some more thoughts about sensitive content. I’ve been thinking about this for a long time... What if each file/folder was given a certain level of sensitivity in its attributes - say, a number from 0 to N (where for example N = 7, i.e. 3 bits - probably no more needed)?

0 - Content can be distributed completely freely, for example Linux distributions. N - the most sensitive content, distribution only via i2p with a large number of “hops”, passed through TOR.

It is clear that this requires a whole infrastructure, some kind of analogues of RFC, support from file-sharing clients. But the idea itself is important here. Attributes are stored fine in Windows ADS or Linux Extended Attributes.

This is a very interesting and rich idea. And a lot of questions immediately arise.

Is one axis enough? It may be necessary to rank the content according to several parameters, for example, add a rating of how much you want to be a seeder?

At what level should support be implemented: should these tags be tracked by the user DE so that they are semantically an extension of xdg tags, or should they be tracked at the kernel level and be an extension of the ACL? The second seems more logical, it will allow, for example, to implement a ban on copying to unencrypted media starting from a certain sensitivity level and a ban on lowering the sensitivity level without superuser rights.

Finally, there are Linux distributions for warriors. type WSWS and descendants. It implements its own means for mandatory access control and working with classified data. I wonder if there are publicly available developments, because conceptually it’s similar.

By the way, there is information about whether the donkey has regained his former popularity in light of what is happening? (eMule). I remember how in the 00s I got especially rare books and films through it, although the speed was microscopic.

A UFO flew in and published this inscription here

yeah, of course, I didn’t delve into the details of the protocol at that time))

There is iMule, running on top of i2p, but it hasn’t been updated for five years, so I’m not sure if it works properly. There was also Robert, who works with his own maggot links, but I haven’t found his site now.

These are the technologies that fit more closely into Web 3.0 than any DeFi projects.

If we take the current coin price of 1,700 rubles, then storing one terabyte costs 33 rubles.

Yandex stores in Object Storage for 22 rubles

It turns out that you can run a filecoin node, buy a terabyte from Yandex for 22 rubles and sell it for 33?

PROFIT

But there traffic is paid separately. If they download actively, then the price will be different

Yandex

Respect to the author! A very interesting article and written clearly even for a neophyte)

Is there no place where people share their seedbox builds on all different?

Is there anything acceptable without the JVM??

XD is written in Go, uses about 10 MB of RAM ( https://github.com/majestrate/XD ), works only in anonymous I2P and Loki networks, has two interfaces (web interface and command line interface), cannot store distributions in arbitrary directories (in Linux you can bypass them with links) and recently learned to transmit downloaded/distributed statistics to torrent trackers. Ready-made assemblies for different OS can be downloaded as *.tar.xz archive from the section Releases on GitHub. Overall, a torrent client for everyone, but lightweight and without a JVM.

For a long time and persistently I wanted to include XD in this review, but alas, it doesn’t even have half the functionality of I2PSnark, but the most important thing is that it is many times slower. A small log on this topic: https://major.bazari.sh/ilita/torrent/2021/12/22.

Here's a question for the community...

Was not very active, but a user https://www.searchfloor.ru/bot, where various guano about the Papadans is heard. And this telegram bot once again lost the fight for licensed content.
Does it make sense for the channel author to recommend moving to i2pd. He's panicking now...

Makes sense (my opinion may be biased)

It is high time.

I would really like to believe in the anonymity of i2p networks, but after reading your past articles and articles on the Internet (for example, https://xakep.ru/2014/09/04/i2p-secrets/) one gets the feeling that i2p provides security over obscurity.

Encryption of traffic, white noise, tunnels changing every 10 minutes, this is all very good, but there is no 100% anonymity: the network itself is overlay, packets are transmitted over IP, and the last node in the tunnel knows about its creator, which makes it possible to match the ID => IP.

As a result, having a sufficient number of nodes and a sufficient amount of time, you can gradually create a network map linked to IP addresses, and then Comrade Major himself knows what to do.

I wrote a new comment by mistake (he's a little lower) instead of answering yours.

Answer to a comment

the last node in the tunnel knows about its creator

No, no one knows about the creator, everyone looks like neighboring links in someone else's tunnels.

After reading your past articles and articles on the Internet... it seems that i2p provides security over obscurity.

The link to hacker.ru from 2014 is completely irrelevant. Based on outdated material about attacks, I made material about the current state of affairs: article (also from my profile), video.

Your arguments have nothing to do with reality.

I still don’t understand how this will work in a simple situation: an undercover employee goes to a CPU tracker on the darknet, receives a magnet, downloads the file, records ALL IPs transmitting to him. how to prove later that you are not a camel, but just giving out anonymous information?

If the major is so naive as to seriously monitor the IP addresses of i2p routers, which are the outermost links of the outgoing tunnels of those who distribute the file to him, he will receive, firstly, a very large list of random IP addresses, since all tunnels live for 10 minutes , and, secondly, the addresses of only those nodes that participated in the transit without knowing it. In total we have: hundreds and thousands of IPs to check, and we also know with ~100% probability that none of them participated in the distribution.

But it is not he who will prove his innocence. They will send an order from above to close peering, send a dozen demonstrative people to jail, and how many freedom-loving people will be left in this country? Maybe I’m telling some fantastic things in a parallel universe?

If you consider yourself so (un)lucky that out of thousands of Russian users, you will certainly fall under the distribution, then:

-- You can keep the I2P router on a foreign virtual server and connect to it via VPN / proxy, etc;

-- or you can try switching the router to Yggdrasil only mode, which will reduce the likelihood of getting into the first or second wave of those convicted of using I2P, but the stability of operation in this mode may leave much to be desired.

At what speed will the network operate in which there are a couple of enthusiasts with routers abroad? I’m talking about the viability of such solutions in principle in the face of real physical violence. Simple risk and benefit assessment.

Somehow you are either completely incompetent, or for some reason you remembered Bogatov.
He suffered only because he made a Tor exit node, which is done only at your own peril and risk and is clearly not recommended in a non-free country.
The article is not about Tor, but about i2p, which has no exit nodes and is built on completely different principles, and about Bittorent in i2p. What, in fact, is the whole article about, which is generally useful to read to the end before commenting.

By the way, the case against Bogatov ultimately fell apart.

On Linux systems, to autostart when the user session starts, it is worth modifying the i2psnark-standalone startup script something like this:

#!/bin/sh
cd /home/имя_пользователя/portable/i2psnark
java -jar "/home/имя_пользователя/portable/i2psnark/i2psnark.jar"

(this is if you unpacked i2psnark in /home/имя_пользователя/portable)

Otherwise, errors with paths may occur during autorun.

Example systemd service for I2PSnark:

/etc/systemd/system/i2psnark.service

[Unit]
Description=Snark I2P torrent client
After=network.target

[Service]
Type=idle
User=USERNAME
ExecStart=/path/to/i2psnark/launch-i2psnark
WorkingDirectory=/path/to/i2psnark

[Install]
WantedBy=multi-user.target

sudo systemctl start i2psnark start

sudo systemctl enable i2psnark autostart in the future

Often mentioned. However, the project is inactive.

Only full-fledged users can leave comments. Sign in, Please.